package com.example.demo33.service;

import com.example.demo33.entity.Item;
import com.example.demo33.entity.Stats;
import org.springframework.data.domain.Page;
import java.util.Optional;

public interface ItemService {
    // 基础CRUD
    Item saveItem(Item item); // 保存（新增/更新）
    Optional<Item> getItemById(Long id); // 查询单个（返回Optional，兼容JDK8）
    void deleteItem(Long id); // 删除

    // 分页查询
    Page<Item> getItemsByUserId(Long userId, int page, int size,
                                Optional<String> sort, Optional<String> direction);

    // 按状态查询
    Page<Item> getItemsByUserIdAndStatus(Long userId, String status, int page, int size);

    // 搜索查询
    Page<Item> getItemsByUserIdAndSearch(
            Long userId,
            int page,
            int size,
            Optional<String> sort,
            Optional<String> direction,
            Optional<String> search
    );

    // 状态+搜索组合查询
    Page<Item> getItemsByUserIdAndStatusAndSearch(
            Long userId,
            String status,
            int page,
            int size,
            Optional<String> search
    );

    Stats getUserStats(Long userId);
}